hvmloader: Fix e820 printing routine -- addresses are 64-bit
authorKeir Fraser <keir@xen.org>
Tue, 9 Nov 2010 10:34:43 +0000 (10:34 +0000)
committerKeir Fraser <keir@xen.org>
Tue, 9 Nov 2010 10:34:43 +0000 (10:34 +0000)
Signed-off-by: Keir Fraser <keir@xen.org>
tools/firmware/hvmloader/hvmloader.c

index c4c5ddca8236749ad1191e40fdc28abd3237e803..6bc493a4a2cde3e930e7fc948f28634815993429 100644 (file)
@@ -580,22 +580,26 @@ static void dump_e820_table(void)
 {
     struct e820entry *e820 = E820;
     unsigned int nr = *E820_NR;
-    unsigned int last_end = 0;
+    uint64_t last_end = 0, start, end;
     int i;
 
     printf("E820 table:\n");
 
     for ( i = 0; i < nr; i++ )
     {
-        unsigned int start = e820[i].addr;
-        unsigned int end = e820[i].addr + e820[i].size;
+        start = e820[i].addr;
+        end = e820[i].addr + e820[i].size;
 
         if ( start < last_end )
             printf(" OVERLAP!!\n");
         else if ( start > last_end )
-            printf(" HOLE: %08x - %08x\n", last_end, start);
+            printf(" HOLE: %08x:%08x - %08x:%08x\n",
+                   (uint32_t)(last_end >> 32), (uint32_t)last_end,
+                   (uint32_t)(start >> 32), (uint32_t)start);
 
-        printf(" [%02d]: %08x - %08x: ", i, start, end);
+        printf(" [%02d]: %08x:%08x - %08x:%08x: ", i,
+               (uint32_t)(start >> 32), (uint32_t)start,
+               (uint32_t)(end >> 32), (uint32_t)end);
         switch ( e820[i].type )
         {
         case E820_RAM: